/*
 * Loop.hpp
 *
 *  Created on: Aug 5, 2009
 *      Author: naveenoid
 */


/*
 * Includes
 */
#include "./../BoardSetup/TitechBoard.hpp"
#include "./../ToolKit/Log/Logger.hpp"
//#include <map>


#ifndef LOOP_HPP_
#define LOOP_HPP_

namespace Octopus {

namespace MainLoop {

using Octopus::BoardSetup::TitechBoard;
using Octopus::ToolKit::Log::Logger;

class Loop {
public:

//	static virtual void initialise() = 0;
	virtual void remove(void) = 0;
//	virtual void run(void) = 0;

	virtual void start(void) = 0;
	virtual bool stop(void) = 0;

	virtual bool finished(void) = 0;

//	virtual bool isRunning(void) = 0;

	virtual bool changeSetPoints(vector<double>) = 0;

	double offsetForce;

protected:
	static Loop *loop;
	TitechBoard *titechBoard;

	Logger *logger;

	bool continueLoop;
	bool loopFinished;

	Loop();
	virtual ~Loop();

private:

};

}
}

#endif /* LOOP_HPP_ */
